In [36]:
from IPython.display import Image
Image(filename='split/sdgmn3_1.png')
Out[36]:

The Python scripts for all the computations displayed here are available at:

https://github.com/mboudour/GraphMultilayerity

In [37]:
Image(filename='split/sdgmn3_2.png')
Out[37]:
In [38]:
Image(filename='split/sdgmn3_3.png')
Out[38]:
In [39]:
Image(filename='split/sdgmn3_4.png')
Out[39]:
In [40]:
Image(filename='split/sdgmn3_5.png')
Out[40]:

A Sierpinski (Fractal) Self-Similar Graph

In [41]:
%matplotlib inline
In [42]:
run SierpinskiCantorGraph.py
In [43]:
Image(filename='split/sdgmn3_6.png')
Out[43]:
In [44]:
Image(filename='split/sdgmn3_7.png')
Out[44]:
In [45]:
Image(filename='split/sdgmn3_8.png')
Out[45]:


EXAMPLES

1. Synthetic 3-Layer Graphs in the Triangular Topology
2. Synthetic 3-Layer Graphs in the 2-Path Topology
3. Analytic 3-Layer Graphs in the Triangular Topology
4. Analytic 3-Layer Graphs in the 2-Path Topology
5. Temporal Graphs with 3 Slices


1. Synthetic 3-Layer Graphs in the Triangular Topology

In [46]:
%matplotlib inline
from syntheticThreeLayerGraph import synthetic_three_level, plot_graph

n1=n2=n3=50
p1=p2=p3=0.01
q1=q2=q3=0.01

G,J,FF,DD,edgeList = synthetic_three_level(n1,n2,n3,p1,p2,p3,q1,q2,q3,no_isolates=False)
pos=plot_graph(G,J,FF,DD,n1,n2,n3,d1=1,d2=10.,d3=0.8,nodesize=50,withlabels=False,edgelist=edgeList,layout=False,b_alpha=0.25)
In [47]:
from threeLayerCommunityParition import create_node_comm_graph, plot_graph

broken_graph,broken_partition,npartition = create_node_comm_graph(G,J.nodes(),FF.nodes(),DD.nodes())
plot_graph(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [48]:
from threeLayerConnComponentsPartition import create_node_conncomp_graph, plot_graph

broken_graph,broken_partition,npartition = create_node_conncomp_graph(G,J.nodes(),FF.nodes(),DD.nodes())
plot_graph(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [49]:
from threeLayer3AttributesPartition import create_node_3attri_graph, plot_graph

r1=r2=r3=0.333

broken_graph,broken_partition,npartition = create_node_3attri_graph(G,J.nodes(),FF.nodes(),DD.nodes(),r1,r2,r3)
plot_graph(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)

2. Synthetic 3-Layer Graphs in the 2-Path Topology

In [50]:
from syntheticThreeLayerGraph_l import synthetic_three_level, plot_graph

n1=n2=n3=50
p1=p2=p3=0.01
q1=q2=q3=0.01

G,J,FF,DD,edgeList = synthetic_three_level(n1,n2,n3,p1,p2,p3,q1,q2,q3,no_isolates=False)
pos=plot_graph(G,J,FF,DD,n1,n2,n3,d1=2,d2=3.,nodesize=50,withlabels=False,edgelist=edgeList,layout=False,b_alpha=0.25)
In [51]:
from threeLayerCommunityParition import create_node_comm_graph, plot_graph_stack

broken_graph,broken_partition,npartition = create_node_comm_graph(G,J.nodes(),FF.nodes(),DD.nodes())
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [52]:
from threeLayerConnComponentsPartition import create_node_conncomp_graph, plot_graph_stack

broken_graph,broken_partition,npartition = create_node_conncomp_graph(G,J.nodes(),FF.nodes(),DD.nodes())
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [53]:
from threeLayer3AttributesPartition import create_node_3attri_graph, plot_graph_stack

r1=r2=r3=0.333

broken_graph,broken_partition,npartition = create_node_3attri_graph(G,J.nodes(),FF.nodes(),DD.nodes(),r1,r2,r3)
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)

3. Analytic 3-Layer Graphs in the Triangular Topology

In [54]:
from analyticThreeLayerGraph import analyticThreeLayerGraph, plot_graph

n = 150
p = 0.01
r1 = r2 = r3 = 0.333

G, layer1, layer2, layer3, edgeList = analyticThreeLayerGraph(n,p,r1,r2,r3,G_isolates=True)
plot_graph(G,layer1,layer2,layer3,d1=1.5,d2=5.,d3=0.8,nodesize=100,withlabels=False,edgelist=edgeList,layout=False,alpha=0.25)
In [55]:
from threeLayerCommunityParition import create_node_comm_graph, plot_graph

broken_graph,broken_partition,npartition = create_node_comm_graph(G,layer1,layer2,layer3)
plot_graph(G,broken_graph,broken_partition,npartition,layer1,layer2,layer3,d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [56]:
from threeLayerConnComponentsPartition import create_node_conncomp_graph, plot_graph

broken_graph,broken_partition,npartition = create_node_conncomp_graph(G,layer1,layer2,layer3)
plot_graph(G,broken_graph,broken_partition,npartition,layer1,layer2,layer3,d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [57]:
from threeLayer3AttributesPartition import create_node_3attri_graph, plot_graph

r1=r2=r3=0.333

broken_graph,broken_partition,npartition = create_node_3attri_graph(G,layer1,layer2,layer3,r1,r2,r3)
plot_graph(G,broken_graph,broken_partition,npartition,layer1,layer2,layer3,d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)

4. Analytic 3-Layer Graphs in the 2-Path Topology

In [58]:
from analyticThreeLayerGraph_l import analyticThreeLayerGraph, plot_graph

n = 150
p = 0.01
r1 = 0.333
r2 = 0.333
r3 = 0.333

G, layer1, layer2, layer3, edgeList = analyticThreeLayerGraph(n,p,r1,r2,r3,G_isolates=True)
plot_graph(G,layer1,layer2,layer3,d1=3.5,d2=5.,d3=0.8,nodesize=100,withlabels=False,edgelist=edgeList,layout=False,alpha=0.2)
In [59]:
from threeLayerCommunityParition import create_node_comm_graph, plot_graph_stack

broken_graph,broken_partition,npartition = create_node_comm_graph(G,J.nodes(),FF.nodes(),DD.nodes())
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [60]:
from threeLayerConnComponentsPartition import create_node_conncomp_graph, plot_graph_stack

broken_graph,broken_partition,npartition = create_node_conncomp_graph(G,J.nodes(),FF.nodes(),DD.nodes())
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [61]:
from threeLayer3AttributesPartition import create_node_3attri_graph, plot_graph_stack

r1=r2=r3=0.333

broken_graph,broken_partition,npartition = create_node_3attri_graph(G,J.nodes(),FF.nodes(),DD.nodes(),r1,r2,r3)
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)

5. Temporal Graph with 3 Slices

In [62]:
%matplotlib inline
from syntheticThreeLayerGraph_time import synthetic_three_level, plot_graph

p1=p2=p3=0.1
n=50
G,J,FF,DD,JFD,edgeList = synthetic_three_level(n,p1,p2,p3,J_isolates=True,F_isolates=True,D_isolates=True)
#print edgeList
created_pos=plot_graph(n,G,J,FF,DD,JFD,d1=2.,d2=3.,nodesize=50,withlabels=False,edgelist=edgeList,layout=False,b_alpha=0.05) #d=0.5 #d
In [63]:
from threeLayerCommunityParition import create_node_comm_graph, plot_graph_stack

broken_graph,broken_partition,npartition = create_node_comm_graph(G,J.nodes(),FF.nodes(),DD.nodes())
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [64]:
from threeLayerConnComponentsPartition import create_node_conncomp_graph, plot_graph_stack

broken_graph,broken_partition,npartition = create_node_conncomp_graph(G,J.nodes(),FF.nodes(),DD.nodes())
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)
In [65]:
from threeLayer3AttributesPartition import create_node_3attri_graph, plot_graph_stack

r1=r2=r3=0.333

broken_graph,broken_partition,npartition = create_node_3attri_graph(G,J.nodes(),FF.nodes(),DD.nodes(),r1,r2,r3)
plot_graph_stack(G,broken_graph,broken_partition,npartition,J.nodes(),FF.nodes(),DD.nodes(),d1=1.4,d2=5.,d3=0.8,withlabels=False,nodesize=100,layout=False)